#pragma once
#define WM_NCLBUTTONDOWN    0x00A1
#define HTCLIENT			1
#define HTCAPTION			2
#define HTBOTTOMRIGHT		17
#define HTBOTTOM			15
#define HTRIGHT				11
#define HTBOTTOMLEFT		16
#define HTLEFT				10
#define WM_NCHITTEST		0x84
#define ECM_FIRST			0x1500
#define EM_SETCUEBANNER  ECM_FIRST + 1
#define EM_GETSCROLLPOS		0x0400 + 221
#define WM_VSCROLL			0x115
#define SB_THUMBPOSITION	4
#define WM_MOUSEWHEEL       0x020A
using namespace System;
using namespace System::Windows::Forms;
using namespace System::Runtime::InteropServices;

ref class APIUtils
{
public:
	[DllImportAttribute("user32.dll")]
	static int SendMessage(IntPtr hWnd, 
					 int Msg, int wParam, int lParam);
	[DllImportAttribute("user32.dll")]
	static int SendMessage(IntPtr hWnd, 
					 int Msg, int wParam, interior_ptr<System::Drawing::Point> lParam);
	[DllImportAttribute("user32.dll", CharSet = CharSet::Auto)]
	static int SendMessage(IntPtr hWnd, 
					 int Msg, int wParam, [MarshalAs(UnmanagedType::LPWStr)]String^ lParam);
	[DllImportAttribute("user32.dll", CharSet = CharSet::Auto)]
	static int SendMessage(IntPtr hWnd, 
					 int Msg, int wParam, System::Drawing::Point^ pt);
	[DllImportAttribute("user32.dll")]
	static bool ReleaseCapture();

	static int SetCueText(TextBox^ tbctl,String^ text);
	static void EnableDrag(IntPtr Handle);
};

